package cc.lj.internal.coupons.domain.martcap.model.vo;

import cc.lj.internal.core.model.BaseModel;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;

/**
 * 封顶额活动批次表DO
 * @author liangxifeng
 * @date 2021-12-11
 */
@Data
@NoArgsConstructor
public class CapBatchDO extends BaseModel {
    /**
     * 主键
     */
    private Integer	id;

    /**
     * 关联券批次ticket_batch主键
     */
    private Integer	batchId;

    /**
     * 关联商户封顶额mart_cap表主键
     */
    private Integer	capId;

    /**
     * 占有卖场封顶额的比例，不可为空，默认0
     */
    private BigDecimal martCapRatio;

    /**
     * 商户新分摊比例
     */
    private BigDecimal	merchantShare;

    /**
     * 卖场新分摊比例
     */
    private BigDecimal	martShare;

    /**
     * 商户分摊金额
     */
    private BigDecimal	merchantPrice;

    /**
     * 卖场分摊金额
     */
    private BigDecimal	martPrice;

    /**
     * 电子券面额 ,注意该字段其他entity并没有,在本层为了计算分摊所用
     */
    private BigDecimal batchPrice;


    /**
     * 计算商户分摊金额 = 四舍五入取整(券面额 * 商户分摊)
     */
    public void setMerchantPriceNew() {
        if(batchPrice != null && merchantShare != null) {
            this.merchantPrice = batchPrice.multiply(merchantShare).setScale(0, BigDecimal.ROUND_HALF_UP);
        }
    }
    /**
     * 计算卖场分摊金额 = 券面额 - 商户分摊金额
     * 注意这里必须先计算商户分摊金额，后计算卖场分摊金额
     */
    public void setMartPriceNew() {
        if(batchPrice != null && merchantPrice != null) {
            this.martPrice = batchPrice.subtract(merchantPrice);
        }
    }
}
